Transactifying Applications using an Open Compiler Framework
نویسندگان
چکیده
Transactional memory dramatically reduces the complexity of writing concurrent code. Yet, seamless integration of transactional constructs in application code typically comes with a significant performance penalty. Recent studies have shown that compiler support allows producing highly efficient STM-based applications without putting the hassle on the programmer. So far, STM integration has been partially implemented in custom, proprietary compiler infrastructures. In this paper, we propose and evaluate the use of the LLVM open compiler framework to generate efficient concurrent applications using word-based STM libraries. Since LLVM uses the GCC compiler suite as front-end, it can process code written in C or C++ (with partial support for other languages). We also present a tool that allows “transactifying” assembly code and can complement LLVM for legacy code and libraries. Experiments using a lightweight C wordbased STM library show that LLVM integration performs as well as hand-optimized calls to the STM library and better than assembly code instrumentation of the application code.
منابع مشابه
Grammatical Framework Web Service
We present a web service for natural language parsing, prediction, generation, and translation using grammars in Portable Grammar Format (PGF), the target format of the Grammatical Framework (GF) grammar compiler. The web service implementation is open source, works with any PGF grammar, and with any web server that supports FastCGI. The service exposes a simple interface which makes it possibl...
متن کاملFrameworks for Model-Driven Development of Web Applications
This paper describes model driven development of dynamic web application using a few different frameworks. Those are the following open source Java frameworks: Modelibra, ModelibraWicket and Wicket. Modelibra is a domain model framework. ModelibraWicket is an application development framework. This web framework uses Modelibra for domain models and Wicket for application views. The domain model...
متن کاملCompiling a High-Level Directive-Based Programming Model for GPGPUs
OpenACC is an emerging directive-based programming model for programming accelerators that typically enable non-expert programmers to achieve portable and productive performance of their applications. In this paper, we present the research and development challenges, and our solutions to create an open-source OpenACC compiler in a main stream compiler framework (OpenUH of a branch of Open64). W...
متن کاملEfficiently Refactoring Java Applications to Use Generic Libraries
Java 1.5 generics enable the creation of reusable container classes with compiler-enforced type-safe usage. This eliminates the need for potentially unsafe down-casts when retrieving elements from containers. We present a refactoring that replaces raw references to generic library classes with parameterized references. The refactoring infers actual type parameters for allocation sites and decla...
متن کاملCarnap: An Open Framework for Formal Reasoning in the Browser
This paper presents an overview of Carnap, a free and open framework for the development of formal reasoning applications. Carnap’s design emphasizes flexibility, extensibility, and rapid prototyping. Carnap-based applications are written in Haskell, but can be compiled to JavaScript to run in standard web browsers. This combination of features makes Carnap ideally suited for educational applic...
متن کامل